/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package pbl_cliente;

import java.io.DataInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.Socket;

/**
 *
 * @author Asuka
 */
public class Recebedor implements Runnable {

    private InputStream servidor;
    private String DadosServidor;
    private PBL_cliente cliente;
    CotaChat cotaChat;

    public Recebedor(InputStream servidor, PBL_cliente cli) {
        this.servidor = servidor;
        this.cliente = cli;
    }
    
    public Recebedor(CotaChat cotaChat, Socket servidor) throws IOException{
        this.cotaChat = cotaChat;
        this.servidor = servidor.getInputStream();
    }

    public void run() {
        //while(true){
             try {
                //System.out.println("AGUARDANDO MENSAGEM DO SERVER ");
                DataInputStream lendoDoServidor = new DataInputStream(this.servidor);
                DadosServidor = lendoDoServidor.readUTF();
                //  System.out.println("Aguardando resposta do servidor!");
                //  System.out.println("REPOSTA DO SERVIDOR = " + DadosServidor);
                System.out.println("- Servidor enviou uma mensagem: " + DadosServidor);

                if(DadosServidor.split(":")[0].equals("CotaLiberada")){
                    this.cotaChat.setTenhoCota(true);
                    this.cotaChat.setId_cota(Integer.parseInt(DadosServidor.split(":")[1]));
                    String ipMulticast = "225.4.5." + DadosServidor.split(":")[2];
                    this.cotaChat.setPortaMulticast(Integer.parseInt(DadosServidor.split(":")[3]));
                    //this.cotaChat.setPortaMulticast(12355);
                    System.out.println("IpMulticast recebido: " + ipMulticast);
                    this.cotaChat.setIpMulticast(ipMulticast);
                    this.cotaChat.recebiCota();
                }
                else if(DadosServidor.split(":")[0].equals("CotaIndisponivel")){
                    this.cotaChat.naoRecebiCota();
                }
                else{
                    cliente.TrataMsgsVindasServidor(DadosServidor);
                }

            } catch (Exception err) {
                err.printStackTrace();
                System.out.println("erro4: " + err.getMessage());
            }
        //}


    }
}
